昨天完成了碼表的部分,今天就開始做計時器吧。
計時器其實跟碼表的做法不會差太多,但是會稍微麻煩一點,因為會用到新的UI還有alert的部分。
那麼一樣,先拉好要用的UI和layout,避免跑版,拉好之後大概像這樣,上面一個Label和PickerView疊在一起,下面兩個Button。
這裡會用到新的UI,PickerView。
這裡是設定PickerView的程式,第一個是設定PickerView橫向有幾個欄位。
let numbersOf24 = [Int](0...23)
let numbersOf60 = [Int](0...59)
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 6
}
第二個是設定每一個欄位裡面,有幾個元件。
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
switch component {
case 0:return numbersOf24.count
case 2:return numbersOf60.count
case 4:return numbersOf60.count
default:return 1
}
}
第三個是設定每個元件裡的內容。
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
switch component {
case 0:return numbersOf24[row].description
case 1:return "時"
case 2:return numbersOf60[row].description
case 3:return "分"
case 4:return numbersOf60[row].description
case 5:return "秒"
default:return "error"
}
}
最後一個就是將選擇的元件的內容存進對應的變數裡。
var hour = 0
var minute = 0
var second = 0
var timeInterval = 0
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
switch component {
case 0:hour = numbersOf24[row]
case 2:minute = numbersOf60[row]
case 4:second = numbersOf60[row]
default:
return
}
}
那麼今天設定完PickerView和寫好功能,明天就來新增兩個Button的功能吧。